package net.hky365.shop.module.system.api.tenant;


import net.hky365.shop.module.system.api.tenant.dto.TenantDTO;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * tenant api
 *
 * @author hl-king
 */
public interface TenantInfoApi {
    /**
     * 获取租户信息
     *
     * @param id 租户id
     * @return 租户
     */
    TenantDTO getTenant(long id);

    List<TenantDTO> getTenantList(Collection<Long> tenantIds);

    default Map<Long, TenantDTO> getTenants(Collection<Long> tenantIds) {
        List<TenantDTO> tenantList = getTenantList(tenantIds);
        return tenantList.stream().collect(Collectors.toMap(TenantDTO::getId, tenant -> tenant));
    }

    /**
     * 获取租户列表, 缓存(有延时
     */
    List<TenantDTO> getTenantCachedList();
}
